package Text7;

import java.util.Scanner;

public class Main {

    //一个正整数 n可以表示成若干个正整数之和，形如：n=n1+n2+…+nk
    //现在给定一个正整数 n，请你求出 n共有多少种不同的划分方法。
    //    f[i][j] = f[i - 1][j] + f[i - 1][j - i] + f[i - 1][j - 2 * i] + ...;
//    f[i][j - i] = f[i - 1][j - i] + f[i - 1][j - 2 * i] + ...;
    // f[i][j] = f[i - 1][j] + f[i][j - i]
    static int N = 1010, mol = (int) (1e9 + 7);
    static int[] f = new int[N];

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        f[0] = 1;
        for (int i = 1; i <= n; i++) {
            for (int j = i; j <= n; j++) {
                f[j] = (f[j] + f[j - i])%mol;
            }
        }
        System.out.println(f[n]);
    }
}
